<script>
    // 导入需要的模块
	// #ifdef APP-PLUS
    import { addShortcuts, removeAll } from '@/utils/shortcuts.js';
	// #endif
    // #ifdef H5
    import pageAnimation from './components/page-animation-pro';
    // #endif
    import Vue from 'vue';

    export default {
        // #ifdef H5
        mixins: [pageAnimation],
        // #endif
        data() {
            return {
                isDark: false
            }
        },
        onLaunch: function () {
			// #ifdef APP-PLUS
            this.checkArguments();
            plus.globalEvent.addEventListener('newintent', (e) => {
                this.checkArguments(); 
            });
			const {
				osName
			} = uni.getSystemInfoSync();
			if (osName === 'android') {
				plus.navigator.closeSplashscreen(); // 关闭启动页
				// 以下是原onShow中安卓相关逻辑移到此处，因为原onShow中安卓部分主要也是启动相关判断
				try {
					const main = plus.android.runtimeMainActivity();
					this.Shortcut(); // 调用安卓快捷方式相关方法
					const Intent = plus.android.importClass("android.content.Intent");
					const intent = main.getIntent();
					let path = intent.getStringExtra("path"); // list 里面的path 
					//根据path路径判断是否由快捷方式开启app 不进行跳转
					if (!path) return; //path为null或者未登录，直接return
					// if(path === null||!this.$store.state.hasLogin) return;//path为null或者未登录，直接return
					//使用 setTimeout 延时跳转，确保应用完全初始化
					setTimeout(() => {
						uni.navigateTo({
							url: path
						});
					}, 1000);
					//移除跳转路径，避免后续打开默认为快捷方式唤醒
					intent.removeExtra("path");
				} catch (error) {
					console.error('处理Android启动逻辑时出错:', error);
				}
			}
			if (osName == 'ios') {
				this.useShortcut();
			}
            
            plus.push.addEventListener("click", function (msg) {
                var payload = msg.payload;
                if (payload == "finance") {
                    setTimeout(function () {
                        uni.navigateTo({
                            url: '/pages/user/inbox'
                        })
                    }, 1000)
                }
                if (payload == "system") {
                    setTimeout(function () {
                        uni.navigateTo({
                            url: '/pages/user/inbox'
                        })
                    }, 1000)
                }
                if (payload.indexOf("comment")!= -1) {
                    setTimeout(function () {
                        uni.navigateTo({
                            url: '/pages/user/inbox'
                        })
                    }, 1000)
                }
                plus.push.clear();
            }, false);
            // #endif

            // 获取系统信息相关逻辑
            uni.getSystemInfo({
                success: function (e) {
                    // #ifndef MP
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    if (e.platform == 'android') {
                        Vue.prototype.CustomBar = e.statusBarHeight + 50;
                    } else {
                        Vue.prototype.CustomBar = e.statusBarHeight + 45;
                    };
                    // #endif

                    // #ifdef MP-WEIXIN
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    let custom = wx.getMenuButtonBoundingClientRect();
                    Vue.prototype.Custom = custom;
                    Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
                    // #endif

                    // #ifdef MP-ALIPAY
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
                    // #endif

                    // #ifdef MP-QQ
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    Vue.prototype.CustomBar = e.statusBarHeight + 45;
                    // #endif

                    // #ifdef MP-BAIDU
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    Vue.prototype.CustomBar = e.statusBarHeight + 45;
                    // #endif

                    // #ifdef MP-TOUTIAO
                    Vue.prototype.StatusBar = e.statusBarHeight;
                    Vue.prototype.CustomBar = e.statusBarHeight + 45;
                    // #endif
                }
            })

            // 配置夜间模式全局状态
            Vue.prototype.checkDarkMode = function() {
                const that = this;
                let showStyle = uni.getStorageSync('showStyle') || 0;
                let isDark = false;
                
                // #ifdef MP-WEIXIN
                // 微信小程序简化版本
                if (showStyle == 1) {
                    isDark = true;
                } else if (showStyle == 0) {
                    isDark = false;
                } else {
                    // 跟随时间
                    let timeNow = new Date();
                    let hours = timeNow.getHours();
                    isDark = hours > 18 || hours < 6;
                }
                
                Vue.prototype.isDark = isDark;
                getApp().isDark = isDark;
                this.isDark = isDark;
                return isDark;
                // #endif
                
                // #ifndef MP-WEIXIN
                if (showStyle == 1) {
                    isDark = true;
                    that.setDarkNavigationBar();
                } else if (showStyle == 0) {
                    isDark = false;
                    that.setLightNavigationBar();
                } else {
                    // #ifdef APP-PLUS
                    if (uni.getSystemInfoSync().platform === 'android') {
                        // 获取当前时间
                        let timeNow = new Date();
                        // 获取当前小时
                        let hours = timeNow.getHours();
                        if (hours > 18 || hours < 6) {
                            isDark = true;
                            that.setDarkNavigationBar();
                        } else {
                            isDark = false;
                            that.setLightNavigationBar();
                        }
                    } else {
                        // iOS检测系统深色模式
                        var style = plus.navigator.getUIStyle();
                        if ('dark' == style) {
                            isDark = true;
                            that.setDarkNavigationBar();
                        } else {
                            isDark = false;
                            that.setLightNavigationBar();
                        }
                    }
                    // #endif
                    
                    // #ifdef H5
                    // 获取当前时间
                    let timeNow = new Date();
                    // 获取当前小时
                    let hours = timeNow.getHours();
                    if (hours > 18 || hours < 6) {
                        isDark = true;
                        that.setDarkNavigationBar();
                    } else {
                        isDark = false;
                        that.setLightNavigationBar();
                    }
                    // #endif
                    
                    // #ifdef MP
                    // 获取当前时间
                    let timeNow = new Date();
                    // 获取当前小时
                    let hours = timeNow.getHours();
                    if (hours > 18 || hours < 6) {
                        isDark = true;
                        that.setDarkNavigationBar();
                    } else {
                        isDark = false;
                        that.setLightNavigationBar();
                    }
                    // #endif
                }
                
                Vue.prototype.isDark = isDark;
                return isDark;
                // #endif
            };
            
            // 新增：动态切换主题函数
            Vue.prototype.switchTheme = function(showStyle) {
                const that = this;
                let isDark = false;
                
                // #ifdef MP-WEIXIN
                // 微信小程序简化版本：直接根据showStyle设置isDark
                if (showStyle == 1) {
                    isDark = true;
                } else if (showStyle == 0) {
                    isDark = false;
                } else {
                    // 跟随时间
                    let timeNow = new Date();
                    let hours = timeNow.getHours();
                    isDark = hours > 18 || hours < 6;
                }
                
                // 直接更新全局状态
                Vue.prototype.isDark = isDark;
                getApp().isDark = isDark;
                this.isDark = isDark;
                
                // 触发全局主题变化事件
                uni.$emit('themeChange', isDark);
                
                return isDark;
                // #endif
                
                // #ifndef MP-WEIXIN
                if (showStyle == 1) {
                    isDark = true;
                } else if (showStyle == 0) {
                    isDark = false;
                } else {
                    // 跟随系统/时间
                    // #ifdef APP-PLUS
                    if (uni.getSystemInfoSync().platform === 'android') {
                        let timeNow = new Date();
                        let hours = timeNow.getHours();
                        isDark = hours > 18 || hours < 6;
                    } else {
                        var style = plus.navigator.getUIStyle();
                        isDark = 'dark' == style;
                    }
                    // #endif
                    
                    // #ifdef H5 || MP
                    let timeNow = new Date();
                    let hours = timeNow.getHours();
                    isDark = hours > 18 || hours < 6;
                    // #endif
                }
                
                // 更新全局状态
                Vue.prototype.isDark = isDark;
                getApp().isDark = isDark;
                
                // 设置导航栏和TabBar
                if (isDark) {
                    that.setDarkNavigationBar();
                } else {
                    that.setLightNavigationBar();
                }
                
                // 触发全局主题变化事件
                uni.$emit('themeChange', isDark);
                
                return isDark;
                // #endif
            };
            
            Vue.prototype.setDarkNavigationBar = function() {
                // 设置导航栏深色模式
                uni.setNavigationBarColor({
                    frontColor: '#ffffff',
                    backgroundColor: '#111111',
                    animation: {
                        duration: 400,
                        timingFunc: 'easeIn'
                    }
                });
                
                // 设置TabBar深色模式
                uni.setTabBarStyle({
                    color: '#7e858f',
                    selectedColor: '#e91d42',
                    backgroundColor: '#1c1c1c',
                    borderStyle: 'black'
                });
                
                // #ifdef APP-PLUS
                // 设置状态栏样式为白色文字
                plus.navigator.setStatusBarStyle('light');
                // #endif
                
                // 动态设置页面背景色
                this.setPageBackground('#1c1c1c');
            };
            
            Vue.prototype.setLightNavigationBar = function() {
                // 设置导航栏浅色模式
                uni.setNavigationBarColor({
                    frontColor: '#000000',
                    backgroundColor: '#ffffff',
                    animation: {
                        duration: 400,
                        timingFunc: 'easeIn'
                    }
                });
                
                // 设置TabBar浅色模式
                uni.setTabBarStyle({
                    color: '#7e858f',
                    selectedColor: '#e91d42',
                    backgroundColor: '#ffffff',
                    borderStyle: 'black'
                });
                
                // #ifdef APP-PLUS
                // 设置状态栏样式为黑色文字
                plus.navigator.setStatusBarStyle('dark');
                // #endif
                
                // 动态设置页面背景色
                this.setPageBackground('#ffffff');
            };
            
            Vue.prototype.setPageBackground = function(backgroundColor) {
                // #ifdef H5
                if (typeof document !== 'undefined') {
                    document.body.style.backgroundColor = backgroundColor;
                    const uniPageBody = document.querySelector('uni-page-body');
                    if (uniPageBody) {
                        uniPageBody.style.backgroundColor = backgroundColor;
                    }
                    const uniApp = document.querySelector('#app');
                    if (uniApp) {
                        uniApp.style.backgroundColor = backgroundColor;
                    }
                }
                // #endif
                
                // #ifdef APP-PLUS
                // APP端通过动态添加CSS类来控制背景色
                const isDark = backgroundColor === '#1c1c1c';
                
                // 设置全局状态
                Vue.prototype.isDark = isDark;
                getApp().isDark = isDark;
                
                // 触发页面样式更新
                uni.$emit('themeChange', isDark);
                // #endif
                
                // #ifdef MP
                // 小程序端通过全局样式类控制
                if (typeof document !== 'undefined') {
                    const style = document.createElement('style');
                    style.innerHTML = `
                        page {
                            background-color: ${backgroundColor} !important;
                        }
                    `;
                    const existingStyle = document.head.querySelector('#dynamic-page-bg');
                    if (existingStyle) {
                        document.head.removeChild(existingStyle);
                    }
                    style.id = 'dynamic-page-bg';
                    document.head.appendChild(style);
                }
                // #endif
            };
            
            // 定义颜色列表
            Vue.prototype.ColorList = [{
                    title: '嫣红',
                    name: 'red',
                    color: '#e54d42'
                },
                {
                    title: '桔橙',
                    name: 'orange',
                    color: '#f37b1d'
                },
                {
                    title: '明黄',
                    name: 'yellow',
                    color: '#fbbd08'
                },
                {
                    title: '橄榄',
                    name: 'olive',
                    color: '#8dc63f'
                },
                {
                    title: '森绿',
                    name: 'green',
                    color: '#39b54a'
                },
                {
                    title: '天青',
                    name: 'cyan',
                    color: '#1cbbb4'
                },
                {
                    title: '海蓝',
                    name: 'blue',
                    color: '#3cc9a4'
                },
                {
                    title: '姹紫',
                    name: 'purple',
                    color: '#6739b6'
                },
                {
                    title: '木槿',
                    name: 'mauve',
                    color: '#9c26b0'
                },
                {
                    title: '桃粉',
                    name: 'pink',
                    color: '#e03997'
                },
                {
                    title: '棕褐',
                    name: 'brown',
                    color: '#a5673f'
                },
                {
                    title: '玄灰',
                    name: 'grey',
                    color: '#8799a3'
                },
                {
                    title: '草灰',
                    name: 'gray',
                    color: '#aaaaaa'
                },
                {
                    title: '墨黑',
                    name: 'black',
                    color: '#333333'
                },
                {
                    title: '雅白',
                    name: 'white',
                    color: '#ffffff'
                },
            ];
            
            // 立即从缓存读取主题设置并应用全局
            try {
                this.initThemeFromCache();
            } catch (error) {
                console.error('主题初始化失败:', error);
            }
            
            // #ifdef APP-PLUS
            // APP环境下额外设置webview和状态栏
            try {
                const currentWebview = plus.webview.currentWebview();
                if (currentWebview) {
                    currentWebview.setStyle({
                        background: this.isDark ? '#1c1c1c' : '#f6f6f6'
                    });
                }
                plus.navigator.setStatusBarStyle(this.isDark ? 'light' : 'dark');
            } catch (e) {
                console.log('APP环境初始化主题失败:', e);
            }
            // #endif
        },
        onShow: function () {
            console.log('App Show');
            // 原第一段代码中安卓平台下 onShow 里的相关逻辑（处理 intent 等）
			// #ifdef APP-PLUS
            if (uni.getSystemInfoSync().osName == 'android') {
                const main = plus.android.runtimeMainActivity();
                const Intent = plus.android.importClass("android.content.Intent");
                const intent = main.getIntent();
                let path = intent.getStringExtra("path");
                console.error(path);
                if (path === null) return;
                this.$nextTick(function () {
                    uni.navigateTo({
                        url: path
                    })
                    intent.removeExtra("path");
                })
            }
			 // #endif
        },
        onHide: function () {
            console.log('App Hide');
        },
        onError: function (res) {
			
        },
        methods: {
            // 从缓存初始化主题并立即应用
            initThemeFromCache() {
                // 从localStorage读取主题设置
                let showStyle = uni.getStorageSync('showStyle') || '0';
                let isDark = false;
                
                if (showStyle == '1') {
                    // 强制夜间模式
                    isDark = true;
                } else if (showStyle == '0') {
                    // 强制日间模式
                    isDark = false;
                } else {
                    // 跟随系统时间
                    const hour = new Date().getHours();
                    isDark = hour < 6 || hour >= 18;
                }
                
                // 立即设置全局状态
                this.isDark = isDark;
                getApp().isDark = isDark;
                Vue.prototype.isDark = isDark;
                
                // 立即应用样式
                if (isDark) {
                    Vue.prototype.setDarkNavigationBar();
                } else {
                    Vue.prototype.setLightNavigationBar();
                }
            },
            useShortcut() {
				let name = plus.runtime.launcher;
				if (name === 'shortcut') {
					const {
						type
					} = JSON.parse(plus.runtime.arguments);
					if (type === 'iosshortcut1') {
						uni.navigateTo({
							url: '/pages/user/signin'
						});
					} else if (type === 'iosshortcut2') {
						uni.navigateTo({
							url: '/pages/forum/section?type=2'
						});
					} else if (type === 'iosshortcut3') {
						uni.navigateTo({
							url: '/pages/edit/articlePost'
						});
					} else if (type === 'iosshortcut4') {
						uni.navigateTo({
							url: '/pages/space/post?type=0'
						});
					}
				}
			},
            Shortcut() {
				// #ifdef APP-PLUS
                if (uni.getSystemInfoSync().osName == 'android') {
                    let main = plus.android.runtimeMainActivity();
                    addShortcuts(main, [
						{
							id: 'userSignin',
							icon: plus.io.convertLocalFileSystemURL( '/static/shortcuts/1.png' ), 
							path: '/pages/user/signin', 
							shortLabel: '',
							title: this.$t('core.app.signintoday')
						},
						{
							id: 'forumPost',
							icon: plus.io.convertLocalFileSystemURL( '/static/shortcuts/2.png' ), 
							path: '/pages/forum/section?type=2',
							shortLabel: '',
							title: this.$t('global.publishpost')
						},
						{
							id: 'articlePost',
							icon: plus.io.convertLocalFileSystemURL( '/static/shortcuts/3.png' ), 
							path: '/pages/edit/articlePost',
							shortLabel: '', 
							title: this.$t('global.publisharticle')
						},
						{
							id: 'spacePost', 
							icon: plus.io.convertLocalFileSystemURL( '/static/shortcuts/4.png' ), 
							path: '/pages/space/post?type=0',
							shortLabel: '',
							title: this.$t('core.app.publishupdate')
						}
                    ]);
					
                }
				if (osName == 'ios') {
					this.useShortcut();
				}
				// #endif
            },
            checkArguments() {
                let that = this;
				// #ifdef APP-PLUS
                if (plus.runtime.launcher == 'shortcut' && uni.getSystemInfoSync().osName == 'ios') {
                    try {
                        var cmd = JSON.parse(plus.runtime.arguments);
                        console.log(cmd);
                        var userinfo = cmd && cmd.userinfo;
                        this.$nextTick(function () {
                            uni.navigateTo({
                                url: userinfo.key
                            })
                        })
                    } catch (e) {
                        console.log('Shortcut-exception: ' + e);
                    }
                }
				// #endif
            }
        }
    }
</script>

<style lang="scss">
    @import "uni.scss";
    @import "tuniao-ui/colorui/main.css";
    @import "tuniao-ui/colorui/icon.css";
    @import "tuniao-ui/static/base.css";
    @import 'tuniao-ui/theme.scss';
    @import 'tuniao-ui/index.scss';
    @import 'tuniao-ui/iconfont.css';
     // #ifdef APP-PLUS || H5
    @import "tuniao-ui/uview-ui/index.scss";
    @import "tuniao-ui/uview-ui/theme.scss";
    @import "./static/styles/dark.css";
    // #endif
    page{
        min-height: 100vh;
        background-color: #fff;
    }
    body{
        min-height: 100vh;
        background-color: #fff;
    }
    /* 夜间模式的page背景色 */
    page.dark {
        background-color: #1c1c1c !important;
    }
    
    /* 夜间模式的body背景色 */
    body.dark {
        background-color: #1c1c1c !important;
    }

    

   .nav-list {
        display: flex;
        flex-wrap: wrap;
        padding: 0px 40upx 0px;
        justify-content: space-between;
    }

   .nav-li {
        padding: 30upx;
        border-radius: 12upx;
        width: 45%;
        margin: 0 2.5% 40upx;
        /* background-image: url(https://cdn.nlark.com/yuque/0/2019/png/280374/1552996358352-assets/web-upload/cc3b1807-c684-4b83-8f80-80e5b8a6b975.png); */
        background-size: cover;
        background-position: center;
        position: relative;
        z-index: 1;
    }

   .nav-li::after {
        content: "";
        position: absolute;
        z-index: -1;
        background-color: inherit;
        width: 100%;
        height: 100%;
        left: 0;
        bottom: -10%;
        border-radius: 10upx;
        opacity: 0.2;
        transform: scale(0.9, 0.9);
    }

   .nav-li.cur {
        color: #fff;
        background: rgb(94, 185, 94);
        box-shadow: 4upx 4upx 6upx rgba(94, 185, 94, 0.4);
    }

   .nav-title {
        font-size: 32upx;
        font-weight: 300;
    }

   .nav-title::first-letter {
        font-size: 40upx;
        margin-right: 4upx;
    }

   .nav-name {
        font-size: 28upx;
        text-transform: Capitalize;
        margin-top: 20upx;
        position: relative;
    }

   .nav-name::before {
        content: "";
        position: absolute;
        display: block;
        width: 40upx;
        height: 6upx;
        background: #fff;
        bottom: 0;
        right: 0;
        opacity: 0.5;
    }

   .nav-name::after {
        content: "";
        position: absolute;
        display: block;
        width: 100upx;
        height: 1px;
        background: #fff;
        bottom: 0;
        right: 40upx;
        opacity: 0.3;
    }

   .nav-name::first-letter {
        font-weight: bold;
        font-size: 36upx;
        margin-right: 1px;
    }

   .nav-li text {
        position: absolute;
        right: 30upx;
        top: 30upx;
        font-size: 52upx;
        width: 60upx;
        height: 60upx;
        text-align: center;
        line-height: 60upx;
    }

   .text-light {
        font-weight: 300;
    }


   .uni-swiper-dot {
        background-color: rgba(255, 255, 255,.7)!important;
        width: 30upx!important;
        height: 8upx!important;
        border-radius: 0upx!important;
    }

   .uni-swiper-dot.uni-swiper-dot-active {
        background-color: #3cc9a4!important;
        opacity: 0.8;

    }

   .uni-swiper-dot.uni-swiper-dot-active::after {
        background-color: #3cc9a4!important;
        height: 8upx!important;
    }

   .uni-swiper-dots-horizontal {
        bottom: 40upx!important;
    }

   .tags.tags-box span {
        white-space: nowrap;
    }
	/* #ifdef APP || H5 */
	@font-face {
	     font-family: pf-font;
		 src: url('~@/static/font/PingFanSC_R.subset.woff2');
	}
	*{
		font-family:pf-font;
	}
	/* #endif  */
    /* #ifdef MP */
   .screen-swiper image,
   .screen-swiper video,
   .swiper-item image,
   .swiper-item video {
        height: 360upx;
        border-radius: 20upx;
    }

    swiper-item {
        padding: 15upx 25upx;
        box-sizing: border-box;

    }

    swiper-item.swiper-text {
        width: calc(100% - 50upx);
        top: 15upx;
        height: 360upx;
        border-radius: 20upx;
    }

    /* #endif  */
    @keyframes show {
        0% {
            transform: translateY(-50px);
        }

        60% {
            transform: translateY(40upx);
        }

        100% {
            transform: translateY(0px);
        }
    }

    @-webkit-keyframes show {
        0% {
            transform: translateY(-50px);
        }

        60% {
            transform: translateY(40upx);
        }

        100% {
            transform: translateY(0px);
        }
    }
</style>
